This invention relates generally to the field of computer systems. More particularly, a system and method are provided for invalidating data cached in a hierarchy of caches, within a response to a request for that data or other data.
In traditional caching schemes, a data server or other upstream computer system invalidates data cached in a downstream computer system with a distinct invalidation message targeting the cached data. The transmission of an invalidation message generally requires the creation of a communication connection separate from any other communications the data server may have with the cache(s) storing the targeted data. Creating a new connection may be relatively expensive, and is inefficient if it is to be used for only one communication (i.e., the invalidation message).
In many situations, a response to a data request, such as a request for a web page containing several objects or pieces of data, cannot be served until a previous version of the requested page, some or all of the content of the page, or data related to the requested data, are invalidated. Until acknowledgement of the invalidation is received at the server, the response must continue to wait. For example, when a client alters the appearance of a web page, a response to the alteration may include a redirection to the altered page. Traditionally, the redirection could cause the old version of the page to be served if the old version was not yet invalidated in all caches serving the client.
Additionally, issuance and acknowledgement of a traditional invalidation message must adhere to any security features that are in place. If, for example, a data server is behind a firewall or other protective construct, it may have to negotiate a connection with a downstream system each time it is to send an invalidation message to that system. Opening a connection downstream may be impossible because of the firewall. And, if not impossible, negotiating a new connection will at least delay the invalidation of the target data and the server's response to a data request that must wait for the target data to be invalidated. Further, managing invalidation accounts across multiple caches presents administrative as well as security challenges.
Yet further, when an upstream computer system is configured to invalidate data cached on one or more downstream systems, or caches, it may need to manage a number of invalidation accounts, passwords and/or other security or administrative information.